<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // flat(n):将多维数组转化为低维数组,n表示为深度,默认为1
        const arr = [1, 2, 3, 4, [5, 6]];//二维数组
        console.log(arr.flat());//[1, 2, 3, 4, 5, 6]

        const arr2 = [1, 2, 3, 4, [5, 6, [7, 8, 9]]];//三维数组
        console.log(arr2.flat());//[1, 2, 3, 4, 5, 6, [7,8,9]]
        console.log(arr2.flat(2));//[1, 2, 3, 4, 5, 6, 7, 8, 9]

        // flatMap
        const arr3 = [1, 2, 3, 4];
        // map() 方法返回一个新数组，数组中的元素为原始数组元素调用函数处理后的值。
        const result = arr3.map(item => item * 10);
        console.log(result);//[10, 20, 30,40]

        // flatMap() 方法是 flat() 和 map() 方法的组合。此方法最初通过映射函数映射每个数组元素，然后将深度值为 1 的数组展平。
        const result2 = arr3.map(item => [item * 10]);
        console.log(result2);//返回二维数组 [Array(1), Array(1), Array(1), Array(1)]
        const result3 = arr3.flatMap(item => [item * 10])
        console.log(result3);//[10, 20, 30, 40]
    </script>
</body>

</html>